package com.seek.eduservice.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.seek.eduservice.entity.EduCourse;
import com.baomidou.mybatisplus.extension.service.IService;
import com.seek.eduservice.entity.vo.CoursePublishVo;
import com.seek.eduservice.entity.vo.CourseQuery;
import com.seek.eduservice.entity.vo.front.CourseInfoVo;
import com.seek.eduservice.entity.vo.front.CourseVo;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 课程 服务类
 * </p>
 *
 * @author wml
 * @since 2022-01-16
 */
public interface EduCourseService extends IService<EduCourse> {

    // 根据课程 id 查询课程确认信息
    CoursePublishVo getPublishCourseInfo(String courseId);

    // 删除课程
    void removeCourse(String courseId);

    // 根据条件查询课程信息带分页 查列表数据
    List<CourseQuery> getPageCondition(CourseQuery courseQuery);

    // 根据条件查询课程信息带分页 查总数
    int count(CourseQuery courseQuery);

    // 条件查询带分页查询课程
    Map<String, Object> getFrontCourseList(Page<EduCourse> page, CourseVo courseVo);

    // 根据课程 id 查询课程信息
    CourseInfoVo getBaseCourseInfo(String courseId);

    // 根据浏览量降序查询十条数据
    Map<String, Object> getPopularCourse();
}
